home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / dev / debug / mykes_gtb.lha / gted.h < prev    next >
C/C++ Source or Header  |  1992-03-01  |  9KB  |  238 lines

  1. /*-- AutoRev header do NOT edit!
  2. *
  3. *   Program         :   GTEd.h
  4. *   Copyright       :   © Copyright 1991 Jaba Development
  5. *   Author          :   Jan van den Baard
  6. *   Creation Date   :   21-Sep-91
  7. *   Current version :   1.00
  8. *   Translator      :   DICE v2.6
  9. *
  10. *   REVISION HISTORY
  11. *
  12. *   Date          Version         Comment
  13. *   ---------     -------         ------------------------------------------
  14. *   21-Sep-91     1.00            Header with very important definitions.
  15. *
  16. *-- REV_END --*/
  17.  
  18. #include <exec/types.h>
  19. #include <exec/memory.h>
  20. #include <dos/dos.h>
  21. #include <dos/dostags.h>
  22. #include <dos/rdargs.h>
  23. //#include <libraries/nofrag.h>
  24. #include <libraries/commodities.h>
  25. #include <libraries/gadtools.h>
  26. #include <libraries/asl.h>
  27. #include <intuition/intuition.h>
  28. #include <intuition/gadgetclass.h>
  29. #include <intuition/sghooks.h>
  30. #include <graphics/gfx.h>
  31. #include <workbench/workbench.h>
  32. #include <workbench/startup.h>
  33. #include <workbench/icon.h>
  34. #ifndef abs
  35. #define abs
  36. #endif
  37. #include <stdio.h>
  38. #include <fcntl.h>
  39. #include <stdarg.h>
  40. #include <stdlib.h>
  41. #include <string.h>
  42.  
  43. #include <clib/alib_protos.h>
  44. #include <clib/exec_protos.h>
  45. #include <clib/dos_protos.h>
  46. #include <clib/commodities_protos.h>
  47. #include <clib/gadtools_protos.h>
  48. #include <clib/asl_protos.h>
  49. #include <clib/intuition_protos.h>
  50. #include <clib/graphics_protos.h>
  51. #include <clib/utility_protos.h>
  52. #include <clib/diskfont_protos.h>
  53. #include <clib/icon_protos.h>
  54.  
  55. extern struct Library    *GadToolsBase;
  56.  
  57. #define GT_FILETYPE     ((ULONG)'GTED') /* file identifier */
  58. #define GT_MAXLABEL     32L             /* max sourcelabel name */
  59. #define GT_MAXLABELNAME 80L             /* max gadget text */
  60. #define GT_VERSION      1L              /* file version */
  61. #define PR_VERSION      1L              /* prefs version */
  62.  
  63. #define GT_TITLE        ((UBYTE *)"GadToolsBox v1.0 © 1991")
  64.  
  65. /*
  66.  * --- This is the way NewGadget structures including it's
  67.  * --- TagItems are stored.
  68.  */
  69. struct ExtNewGadget {
  70.     struct ExtNewGadget *en_Next;       /* successor */
  71.     struct ExtNewGadget *en_Prev;       /* predecessor */
  72.     struct TagItem      *en_Tags;       /* NewGadget TagItems */
  73.     struct Gadget       *en_Gadget;     /* The created gadget */
  74.     struct NewGadget     en_NewGadget;  /* The NewGadget */
  75.     UBYTE                en_SourceLabel[GT_MAXLABEL+1];   /* Source label */
  76.     UBYTE                en_GadgetText[GT_MAXLABELNAME+1]; /* gadget text */
  77.     ULONG                en_SpecialFlags;  /* special internal flags */
  78.     UWORD                en_Kind;        /* NewGadget kind */
  79.     UWORD                en_NumTags;     /* Number of tagitems */
  80.  
  81.     /*** Specials for the string and integer gadgets ***/
  82.     LONG                 en_DefInt;      /* Default number */
  83.     UBYTE               *en_DefString;   /* Default string */
  84.     UWORD                en_MaxChars;    /* max # of chars */
  85.  
  86.     /*** Specials for the listview gadgets ***/
  87.     struct List          en_Entries;     /* entries in the listview */
  88.     UWORD                en_ScrollWidth; /* scroller width */
  89.     UWORD                en_Spacing;     /* spacing mx & listview */
  90.  
  91.     /*** Specials for the cycle and mx gadgets ***/
  92.     UBYTE               *en_Labels[25];  /* gadget labels max 25 for now */
  93.  
  94.     /*** Specials for the slider gadget ***/
  95.     UBYTE               *en_LevelFormat; /* slider format string */
  96.  
  97.     /*** Specials for the palette gadget ***/
  98.     UWORD                en_IndicatorSize; /* indicator size */
  99.  
  100.     /*** Specials for the scroller gadget ***/
  101.     UWORD                en_ArrowSize; /* arrow size */
  102. };
  103.  
  104. #define EGF_DISABLED     0x00000001     /* to indicate GA_Disabled tag */
  105. #define EGF_USERLABEL    0x00000002     /* to indicate a user label */
  106. #define EGF_CHECKED      0x00000004     /* to indicate checked state */
  107. #define EGF_READONLY     0x00000008     /* to indicate read listview */
  108. #define EGF_NOGADGETUP   0x00000010     /* to indicate no RelVerify */
  109. #define EGF_ISLOCKED     0x00000020     /* to indicate gadget locked */
  110. #define EGF_NEEDLOCK     0x00000040     /* to indicate gadget lock */
  111.  
  112. /*
  113.  * --- This is really a MinList structured for the ExtNewGadgets.
  114.  */
  115. struct ExtGadgetList {
  116.     struct ExtNewGadget *gl_First;   /* First in the list */
  117.     struct ExtNewGadget *gl_EndMark; /* End marker */
  118.     struct ExtNewGadget *gl_Last;    /* Last in the list  */
  119. };
  120.  
  121. /*
  122.  * --- This is the way the NewMenu structures are strored.
  123.  */
  124. struct ExtNewMenu {
  125.     struct ExtNewMenu   *em_Next;       /* successor */
  126.     struct ExtNewMenu   *em_Prev;       /* predecessor */
  127.     UBYTE                em_Bull0;      /* not used */
  128.     BYTE                 em_Bull1;      /* not used */
  129.     UBYTE               *em_NodeName;   /* used in listview */
  130.     struct NewMenu       em_NewMenu;    /* the NewMenu itself */
  131.     BYTE                 em_TheMenuName[GT_MAXLABELNAME+1]; /* Menu text */
  132.     ULONG                em_SpecialFlags; /* special internal flags */
  133.     struct ExtMenuList  *em_Items; /* this menu it's items */
  134.     BOOL                 em_Dummy; /* specify dummy item */
  135.     UBYTE                em_ShortCut[2]; /* keboard short-cut */
  136.     UWORD                em_NumSlaves; /* for binary file */
  137. };
  138.  
  139. #define EMF_HASDUMMY     0x00000001 /* this specifies menu has no items */
  140.  
  141. /*
  142.  * --- This is really a MinList structured for the ExtNewMenus.
  143.  */
  144. struct ExtMenuList {
  145.     struct ExtNewMenu   *ml_First;    /* First in the list */
  146.     struct ExtNewMenu   *ml_EndMark;  /* End marker */
  147.     struct ExtNewMenu   *ml_Last;     /* Last in the list */
  148. };
  149.  
  150. /*
  151.  * --- This data is written before all gadgets and/or menus.
  152.  */
  153. struct BinHeader {
  154.     /*** miscelanious info ***/
  155.     ULONG                bh_FileType;       /* file identification */
  156.     UWORD                bh_Version;        /* file version */
  157.     ULONG                bh_Flags0;         /* flags */
  158.     ULONG                bh_Flags1;         /* flags */
  159.     UWORD                bh_ActiveKind;     /* kind edited last */
  160.     UWORD                bh_SpareSlots[10]; /* future! */
  161.  
  162.     /*** Used font ***/
  163.     UBYTE                bh_FontName[80];   /* font name */
  164.     struct TextAttr      bh_Font;           /* used font */
  165.  
  166.     /*** Screen info ***/
  167.     UBYTE                bh_ScreenTitle[80]; /* screen title */
  168.     struct TagItem       bh_ScreenTags[13];  /* screen tags */
  169.     struct TagItem       bh_ScreenExt[10];   /* extended tags */
  170.     struct ColorSpec     bh_Colors[33];      /* color specs */
  171.     UWORD                bh_DriPens[NUMDRIPENS + 1]; /* screen dripens */
  172.     ULONG                bh_ScreenSpare[10]; /* future! */
  173.  
  174.     /*** Window info ***/
  175.     UBYTE                bh_WindowTitle[80]; /* window title */
  176.     struct TagItem       bh_WindowTags[14];  /* window tags */
  177.     struct TagItem       bh_WindowExt[10];   /* extended tags */
  178.     WORD                 bh_Zoom[4];         /* zoom positions */
  179.     UWORD                bh_MouseQueue;      /* max mouse queue */
  180.     UWORD                bh_RptQueue;        /* max key queue */
  181.     ULONG                bh_IDCMP;           /* user IDCMP */
  182.     ULONG                bh_Flags;           /* user flags */
  183. };
  184.  
  185. /*
  186.  * --- Binary file flags concerning window extended tags flags
  187.  */
  188. #define BHF_INNERWIDTH      0x00000001 /* WA_InnerWidth tag */
  189. #define BHF_INNERHEIGHT     0x00000002 /* WA_InnerHeight tag */
  190. #define BHF_ZOOM            0x00000004 /* WA_Zoom tag */
  191. #define BHF_MOUSEQUEUE      0x00000008 /* WA_MouseQueue tag */
  192. #define BHF_RPTQUEUE        0x00000010 /* WA_RptQueue tag */
  193. #define BHF_AUTOADJUST      0x00000020 /* WA_AutoAdjust tag */
  194.  
  195. /*
  196.  * --- Binary file flags concerning screen extended tags flags
  197.  */
  198. #define BHF_AUTOSCROLL      0x00010000 /* SA_AutoScroll tag */
  199. #define BHF_WBENCH          0x00020000 /* source uses workbench screen */
  200. #define BHF_PUBLIC          0x00040000 /* source uses def. public screen */
  201. #define BHF_CUSTOM          0x00080000 /* custom screen */
  202.  
  203. /*
  204.  * --- The preferences structure. This data will definitly
  205.  * --- change!!!!!
  206.  */
  207. struct Prefs {
  208.     UWORD                pr_Version;        /* prefs version */
  209.     ULONG                pr_PrefFlags0;     /* flags */
  210.     ULONG                pr_PrefFlags1;     /* flags */
  211.     UWORD                pr_CountIDFrom;    /* Begin ID count from this */
  212.     UBYTE                pr_ProjectPrefix[5];  /* Label prefix */
  213.    /*
  214.     struct ColorSpec     pr_Colors[33];
  215.     */
  216. };
  217.  
  218. #define PRF_STATIC       0x00000001         /* generate static structures */
  219. #define PRF_RAW          0x00000002         /* generate raw assem source */
  220. #define PRF_COORDS       0x00000004         /* coordinates */
  221. #define PRF_WRITEICON    0x00000008         /* write icon */
  222.  
  223. /*
  224.  * --- A special node to use with ListView gadgets. This structure has
  225.  * --- four 32-bit slots for extra data plus 100 bytes for the node name.
  226.  */
  227. struct ListViewNode {
  228.     struct ListViewNode *ln_Succ;   /* successor */
  229.     struct ListViewNode *ln_Pred;   /* predecessor */
  230.     UBYTE                ln_Type;   /* bull */
  231.     BYTE                 ln_Pri;    /* bull */
  232.     char                *ln_Name;   /* points to ln_NameBytes[0] */
  233.     ULONG                ln_UserData[4];  /* userdata slots */
  234.     UBYTE                ln_NameBytes[100]; /* the node name */
  235. };
  236.  
  237.  
  238.